/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package DataAccess.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author Domenico
 */
@Entity
@Table(name = "ordinecliente_prodotto")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "OrdineclienteProdotto.findAll", query = "SELECT o FROM OrdineclienteProdotto o"),
    @NamedQuery(name = "OrdineclienteProdotto.findByOrdineCliente", query = "SELECT o FROM OrdineclienteProdotto o WHERE o.ordineclienteProdottoPK.ordineCliente = :ordineCliente"),
    @NamedQuery(name = "OrdineclienteProdotto.findByProdotto", query = "SELECT o FROM OrdineclienteProdotto o WHERE o.ordineclienteProdottoPK.prodotto = :prodotto"),
    @NamedQuery(name = "OrdineclienteProdotto.findByQuantita", query = "SELECT o FROM OrdineclienteProdotto o WHERE o.quantita = :quantita"),
    @NamedQuery(name = "OrdineclienteProdotto.findByPrezzo", query = "SELECT o FROM OrdineclienteProdotto o WHERE o.prezzo = :prezzo")})
public class OrdineclienteProdotto implements Serializable {
    @Basic(optional = false)
    @Column(name = "prodotto", nullable = false)
    private int prodotto1;
    @Basic(optional = false)
    @Column(name = "iva", nullable = false)
    private int iva;
    @Basic(optional = false)
    @Column(name = "ordineCliente", nullable = false)
    private int ordineCliente1;
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected OrdineclienteProdottoPK ordineclienteProdottoPK;
    @Basic(optional = false)
    @Column(name = "quantita")
    private int quantita;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Basic(optional = false)
    @Column(name = "prezzo")
    private BigDecimal prezzo;
    private Prodotto prodotto;

    public OrdineclienteProdotto() {
    }

    public OrdineclienteProdotto(OrdineclienteProdottoPK ordineclienteProdottoPK) {
        this.ordineclienteProdottoPK = ordineclienteProdottoPK;
    }

    public OrdineclienteProdotto(OrdineclienteProdottoPK ordineclienteProdottoPK, int quantita, BigDecimal prezzo) {
        this.ordineclienteProdottoPK = ordineclienteProdottoPK;
        this.quantita = quantita;
        this.prezzo = prezzo;
    }

    public OrdineclienteProdotto(int ordineCliente, int prodotto) {
        this.ordineclienteProdottoPK = new OrdineclienteProdottoPK(ordineCliente, prodotto);
    }

    public OrdineclienteProdottoPK getOrdineclienteProdottoPK() {
        return ordineclienteProdottoPK;
    }

    public void setOrdineclienteProdottoPK(OrdineclienteProdottoPK ordineclienteProdottoPK) {
        this.ordineclienteProdottoPK = ordineclienteProdottoPK;
    }

    public int getQuantita() {
        return quantita;
    }

    public void setQuantita(int quantita) {
        this.quantita = quantita;
    }

    public BigDecimal getPrezzo() {
        return prezzo;
    }

    public void setPrezzo(BigDecimal prezzo) {
        this.prezzo = prezzo;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (ordineclienteProdottoPK != null ? ordineclienteProdottoPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof OrdineclienteProdotto)) {
            return false;
        }
        OrdineclienteProdotto other = (OrdineclienteProdotto) object;
        if ((this.ordineclienteProdottoPK == null && other.ordineclienteProdottoPK != null) || (this.ordineclienteProdottoPK != null && !this.ordineclienteProdottoPK.equals(other.ordineclienteProdottoPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "DataAccess.entity.OrdineclienteProdotto[ ordineclienteProdottoPK=" + ordineclienteProdottoPK + " ]";
    }

    public int getProdotto1() {
        return prodotto1;
    }

    public void setProdotto1(int prodotto1) {
        this.prodotto1 = prodotto1;
    }

    public int getIva() {
        return iva;
    }

    public void setIva(int iva) {
        this.iva = iva;
    }

    public int getOrdineCliente1() {
        return ordineCliente1;
    }

    public void setOrdineCliente1(int ordineCliente1) {
        this.ordineCliente1 = ordineCliente1;
    }
    public Prodotto getProdotto() {
        return prodotto;
    }

    public void setProdotto(Prodotto prodotto) {
        this.prodotto = prodotto;
    }
}
